import { TagsViewRoutesState } from '@/store/interface/index';
import { Session } from '@/utils/storage';
const tagsViewStore = defineStore({
	// 这里的id必须为唯一ID
	id: 'tagsViewStore',
	state: (): TagsViewRoutesState => {
		return {
			tagsViewRoutes: [], //// 设置 TagsView 路由
			isTagsViewCurrenFull: false, //	// 设置卡片全屏
		};
	},
	// 等同于vuex的getter
	getters: {},
	// pinia 放弃了 mutations 只使用 actions
	actions: {
		// actions可以用async做成异步形式
		async setTagsViewRoutes(data: Array<object>) {
			this.tagsViewRoutes = data;
		},
		// 设置卡片全屏
		setCurrenFullscreen(bool: boolean) {
			Session.set('isTagsViewCurrenFull', bool);
			this.isTagsViewCurrenFull = bool;
		},
	},
	// 开启数据缓存
	persist: {
		enabled: true,
		strategies: [
			{
				// key可以自己定义，不填的话默认就是这个store的ID
				//key: 'user_store',
				// 保存位置，默认保存在sessionStorage storage可以填sessionStorage，localStorage
				storage: sessionStorage,
				// 指定要持久化的数据，默认所有 state 都会进行缓存，你可以通过 paths 指定要持久化的字段，其他的则不会进行持久化。
				//paths: ['userId'],
			},
		],
	},
});

export default tagsViewStore;
